沒錯!你沒聽錯!這是我第二次參賽,去年藉著 Google Developers Machine Learning
報名參加結果意外落選。
看了看前次報名組數812,完賽人數381,通過率連一半都不到,那些成功堅持完30天的人真的好強。
那麼此次再度前來報名鐵人,為的是一雪前恥!希望能記取前次教訓,這次,讓我們一起努力!
印象中五六年級的時候吧,新的課綱冒出了 Scratch 這個東西,因緣際會之下我也開始接觸寫程式 這件事
有玩過 Scratch 的人應該都知道吧,拉幾個積木就能執行程式,而且馬上看的到效果。
不知道的可以去下面這個網站看看:
https://scratch.mit.edu/
我們老師還一副生氣的臉跟我們說道:「以前我們寫程式都是一行一行的打程式碼,哪像你們現在拉幾個方塊算哪門子(搖頭)。」
雖然我到現在都還是不知道拉拉積木到底算不算寫程式。
不過說實在的,也是多虧了 Scratch 激起了我寫程式的興趣,慢慢地對程式有一定的邏輯與概念。
當時寫的第一支程式就類似這樣!Scratch 版的Hello World (笑
相信各位都不陌生吧,學習語言就該先從 Hello World 開始。
我高中開始接觸8051單晶片,那時候才真正學到那些底層的原理
從認識組合語言(Assembly language)
開始一行一行土法煉鋼
要製作專題就得自己學設計電路接著繪製電路板、雕刻、洗板最後至焊接
直至看到成果出來的那瞬間。心中真的是滿滿的成就感。
二年級開始學數位邏輯,就是那些及閘、或閘、反閘啦!
也剛好在國外論壇看到有人在做8位元的電腦
看來看去發現诶?這不就是我們平常上的那些IC,一樣的原理圖嗎?
只是把它組合起來了!於是自己也嘗試如法炮製了一台。
花了我三個月的時間,總算把它給組起來了。
贊同就像博恩說的那樣:「興趣沒有目的地」
過程中會遇到很多阻礙,還有那些你沒去做過就不會知道的問題
但如果突破了,它就是你的,別人沒成功但你做到的,這就是值得驕傲的。
如果有機會的話很想談談這一塊,不過之後找時間再說吧,再說下去就要變成落敗感言了XD
所以話又說回來!(轉得有些生硬!)
現今市面上有許多像 Arduino 和 Raspberry Pi 等等多元的開發板,
甚至是一些已經模組化好的感測套件,讓我們不必為了硬體的部份去煩惱
這塊領域的入門門檻正在降低,但不管再怎麼低,那些基本的原理還是一樣
只要你有創意有耐心,幾乎人人都能實現腦中的夢想藍圖。
想像力就是你的超能力!XD
介紹之前先超級簡略說明,ARM是一種架構也是英國一家電子公司的名字
而眾所周知,ARM這家公司既不生產晶片也不銷售晶片,它只出售晶片技術授權。
其應用廣泛且根據維基百科的解釋 (诶不是,這樣引用正確嗎X) :
自2005年,每年超過一億的手機銷售約98%至少使用了一個ARM處理器。截至2009年,占大約90%的嵌入式32位元RISC處理器和ARM處理器被廣泛使用在消費性電子產品,包括個人數字助理(PDA)、平板電腦、行動電話、數位媒體和音樂播放器、手持式遊戲遊戲機、計算機和電腦外圍裝置(如硬碟機和路由器)。
如今物聯網、汽車電子、人工智慧等新興領域的興起,也給ARM創造了更多的機會。
話又再說回來,ARM公司在ARM11以後的產品都改用Cortex命名,並分成A、R和M三類:
更多的核心架構的細節部分可以詳見wiki處理器內核列表這裡就不再多做贅述。維基百科真好用(誤X
STM32
就是由ARM
公司設計,意法半導體(STMicroelectronics)
這家公司生產的基于ARM®
Cortex®-M
内核的32
位的MCU系列。合起來就是STM32。
就像你使用
Arduino
開發產品一樣,使是它能做的事更多更強,例如自帶I2C
、USART
、SPI
這些通訊協定外,還能同時控制多個感測元件,生活中小至小米手環,大到遠至外太空的衛星都有它的蹤跡。其他像是四軸機、物聯網的智能家電、移動式pos機、3D列印機等等應用極為廣泛。
STM32集高性能、低成本、低功耗於一身,除了自身集程度高、易於開發的特性,專門適合用在嵌入式應用設計。
下面這張是來自義法半導體他們官方的產品線,可以看到他們型號STM32後綴H7
、F0~F4
、G0
、G4
、L0
、L1
、L4
、L4+
、L5
、WB
及WL
等等這些系列。那我看到比較常用的就是Mainstream
這邊的。其他Ultra-low-power
就是低功率,High Performance
就主打高性能,像是F4
的CPU頻率就可以來到180MHz,相較於L0
的CPU頻率只有32MHz,速度差了5倍之多,不過畢竟是低功率嘛,如果是我拿來開發的話可能就會拿來做類似小米手環這種東西,因為它耗電低嘛,所以你才會看到小米手環用了1個月才充一次電的ok吧。最後比較特別的就是Wireless
,其中STM32WB
這顆它其實裡面有兩顆CPU,32MHz和64MHz其中一顆就是讓你來做Bluetooth
藍芽5.0的功能。後面會再講到詳細的介紹。
依照功能需求分成M0至M4與M7的等級
Cortex-M0用於初階8/16位元應用
Cortex-M3針對中階的16/32位元應用
Cortex-M4主打高階32位元與數位信號控制應用
Cortex-M7是Cortex-M家族最新和最高性能的處理器內核,適合用於旗艦級消費者、工業、醫療和物聯網(IoT)設備。因此,Cortex-M處理器家族包含各式功能的處理器類型來滿足不同的需求。
看到左上角的蝴蝶了嗎?厲害了吧!
圖片來自:STM32 32-bit Arm Cortex MCUs
圖片右邊有寫到幾個它能做的事情,簡單說明就是它可以設計Neural Network
,它可以跑比較簡單的神經網路系統,像是之前好像就有人把人臉辨識放到上面,實現物聯網賦予終端AI邊緣計算。再來就是Graphical User Interface
,可以像是滑一台手機一樣,滑動、滾動,做及時的控制。有興趣可以參考Graphical User Interface
第三是它可以做一些Motor Control
馬達的控制,印象中去年ARM主辦的比賽前三名都使用了STM32微控制器,有興趣的可以到Top 3 Winners of the Arm Design Contest 2019 and How They Used STM32 MCUs這個網站看看,今年3月報導還算滿新的。
沒錯!L0系列就是標榜Ultra-low-power,如果你不想跟我一樣也沒關係,因為網路上大多的範例都是F0、F1、F4這系列,L0真的算是滿新的規格所以或許比較難找的到資源,不過只要基本原理了解了,遇到不一樣的情形應該都不會有甚麼太大的問題。
這次主題應該就會圍繞在實作開發上
除了兼顧理論也要動手做一些小玩具出來
最重要的是獲得成就感啊!
學習目標是銜接Arduino到STM32的這條路
一開始並不會太深入地去做原理的講解
為了好方便上手,將會帶大家一步一步在實作上
要開賽了好緊張啊!第一天光廢話就占一半了,不知道明天怎麼過
如果有甚麼錯誤還請各位鞭小力一點
我會盡量說的讓大家能懂
很少發文的我
一說話就是語無倫次XD
話說前幾天不是聽到ARM被NVIDIA以400億美元收購了
正當各方在發表自己的看法
強強聯合,市場版圖持續擴大中
我們靜觀其變~